1.2k words
MySQL数据库基本操作首先我们先了解SQL的语言组成,他分为四个部分 数据定义语言(DDL) 数据操纵语言(DML) 数据控制语言(DCL) 数据查询语言(DQL) 数据定义DDL他主要包含三部分内容,对于数据库的常用操作,其次是对表结构的常用操作, 那说白了就是对数据库和表本身的修改,增加删除表,行和列等内容,不涉及数据本身 对数据库的常用操作 功能 SQL 查看所有数据库 show databases; 创建数据库 create database [if not exists] mydb1 [charset=utf8] 切换数据库 use mydb1; 删除数据库 drop database [if exists] mydb1; 修改数据库编码 alter database mydb1 character set utf8; 如果没有图形化界面,我们是需要使用第一个代码查看所有数据库 中括号内的文字表示可选项,可以写也可以不写,写的时候不需要带中括号,这里就用mydb1作为样例的名称,第一个可选项是因为存在时创建会报错 创建表语法...
928 words
原题链接1231. 航班时间 题目难度:简单 题目来源:第九届蓝桥杯省赛C++ A组,第九届蓝桥杯省赛Java A组 题目描述小 h 前往美国参加了蓝桥杯国际赛。 小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。 小 h 对超音速飞行感到十分恐惧。 仔细观察后发现飞机的起降时间都是当地时间。 由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。 不久后小 h 的女朋友去中东交换。 小 h 并不知道中东与北京的时差。 但是小 h 得到了女朋友来回航班的起降时间。 小 h 想知道女朋友的航班飞行时间是多少。 对于一个可能跨时区的航班,给定来回程的起降时间。 假设飞机来回飞行时间相同,求飞机的飞行时间。 输入格式一个输入包含多组数据。 输入第一行为一个正整数 T,表示输入数据组数。 每组数据包含两行,第一行为去程的起降时间,第二行为回程的起降时间。 起降时间的格式如下: h1:m1:s1 h2:m2:s2 h1:m1:s1 h3:m3:s3 (+1) h1:m1:s1 h4:m4:s4 (+2)...
497 words
原题链接1219. 移动距离 题目难度:简单 题目来源:第六届蓝桥杯省赛C++ B组,第六届蓝桥杯省赛Java A/C组 题目描述X星球居民小区的楼房全是一样的,并且按矩阵样式排列。 其楼房的编号为 1,2,3… 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为 6 时,开始情形如下: 1231 2 3 4 5 612 11 10 9 8 713 14 15 ..... 我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。 输入格式输入共一行,包含三个整数 w,m,n,w 为排号宽度,m,n 为待计算的楼号。 输出格式输出一个整数,表示 m, n 两楼间最短移动距离。 数据范围1≤w,m,n≤10000 输入样例:16 8 2 输出样例:14 题目分析这道题目的意思非常简单,重在如何进行模拟,或者通过找规律也能做出来 这道题目要求的距离实际上在数学中叫做曼哈顿距离,给定两个点的坐标可以用公式表示为$|x_1-x_2|+|y_1-y_2|$ 那么其实问题就变成了如何求这两个编号的坐标了...
565 words
原题链接1229. 日期问题 题目难度:简单 题目来源:第八届蓝桥杯省赛C++ B组,第八届蓝桥杯省赛Java B/C组 题目描述小明正在整理一批历史文献。这些历史文献中出现了很多日期。 小明知道这些日期都在1960年1月1日至2059年12月31日。 令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。 更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。 比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。 给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗? 输入格式一个日期,格式是”AA/BB/CC”。 即每个’/’隔开的部分由两个 0-9 之间的数字(不一定相同)组成。 输出格式输出若干个不相同的日期,每个日期一行,格式是”yyyy-MM-dd”。 多个日期按从早到晚排列。 数据范围$0 \le A,B...
531 words
SQL简介SQL首先是一门高级语言,同其他的C/C++,Java等语言类似,不同的是他是一种结构化查询语言,用户访问和处理数据库的语言,那类似于C语言,SQL也有自己的标准,目前市面上的数据库系统都支持SQL-92标准 SQL这门语言是具有统一性的,但是不同的数据库支持的SQL有略微差别,他是一门非过程化语言,不像C语言,用户并不关心操作是如何完成的,SQL也是跟其他语言结合有相当广泛的应用的,例如Java,Python 首先SQL对大小写不敏感,其次灵活度非常高,一条语句只以分号结尾,可以任意换行 数据库系统简介数据库(DataBases,DB)其实就是以某种组织方式存储数据的集合,这里的组织方式有很多,例如有使用表(table)的 数据库的应用非常广泛,小到网站,大到各类应用系统,都是基于数据库的 我们对数据库基本分为两类,一类叫做关系型数据库(RDBMS) 名称 简介 Oracle 行业巨头 MySQL 最流行的中大型数据库 SQL server Windows上最好用的数据库 PostgreSQL 功能最强大的开源数据库 SQLite...
453 words
原题链接787. 归并排序 题目难度:简单 题目描述给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在 $1 \sim 10^9$ 范围内),表示整个数列。 输出格式输出共一行,包含 n 个整数,表示排好序的数列。 数据范围$1 \le n \le 100000$ 输入样例:1253 1 2 4 5 输出样例:11 2 3 4 5 题目分析归并排序是一种非常重要的分治思想,而且代码不是很复杂,是很有可能在做题时被要求手搓归并的 归并排序的整体思想是先递归拆分,再排序,最后合并 拆分是按照位置拆分的,一般都是按照中间位置拆分 这里的难点在于如何合并 我们用双指针,分别指向两个排好序的数组,然后总是选择较小的数存入到新数组中 示例代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555...
824 words
原题链接466. 回文日期 题目难度:简单 题目来源:NOIP2016普及组 题目描述在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。 显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的 8 位数字是回文的。 现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。 一个 8 位数字是回文的,当且仅当对于所有的 i(1≤i≤8) 从左向右数的第 i 个数字和第 9−i 个数字(即从右向左数的第 i 个数字)是相同的。 例如: 对于 2016 年 11 月 19 日,用 8 位数字 20161119 表示,它不是回文的。 对于 2010 年 1 月 2 日,用 8 位数字 20100102 表示,它是回文的。 对于 2010 年 10 月 2 日,用 8 位数字 20101002 表示,它不是回文的。 输入格式输入包括两行,每行包括一个 8 ...
767 words
原题链接1210. 连号区间数 题目难度:简单 题目来源:第四届蓝桥杯省赛C++ B组,第四届蓝桥杯省赛Java B组 题目描述小明这些天一直在思考这样一个奇怪而有趣的问题: 在 $1 \sim N$ 的某个排列中有多少个连号区间呢? 这里所说的连号区间的定义是: 如果区间 $[L, R]$ 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 $R-L+1$ 的“连续”数列,则称这个区间连号区间。 当 N 很小的时候,小明可以很快地算出答案,但是当 NNN 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。 输入格式第一行是一个正整数 N,表示排列的规模。 第二行是 N 个不同的数字 $P_i$,表示这 N 个数字的某一排列。 输出格式输出一个整数,表示不同连号区间的数目。 数据范围$1 \le N \le 10000$,$1 \le P_i \le N$ 输入样例1:1243 2 4 1 输出样例1:17 输入样例2:1253 4 2 5 1 输出样例2:19 样例解释第一个用例中,有 7 个连号区间分别是:$[1,1], [1...